Browser-based Discovery and Application Switching

ABSTRACT

Various embodiments enable a web browser to promote the availability of an installable application that is associated with a website to which the web browser has been navigated. The web browser is configured to discover the availability of these applications and, responsively, provide a user experience through which the user can acquire and install such applications, as well as switch to applications that have previously been installed. Thus, through the various embodiments, a user is relieved of the burden of having to navigate to a particular application store and periodically search for applications associated with sites to which they browse.

RELATED APPLICATION

This application is a continuation of and claims priority under 35U.S.C. §120 to U.S. patent application Ser. No. 13/229,386, filed onSep. 9, 2011, the disclosure of which is incorporated by referenceherein in its entirety.

BACKGROUND

In some online scenarios, website content can be consumed by both a webbrowser and by an installable application that has been developed forthe website content by a web developer. The installable applicationtypically operates outside the browser context. Such installableapplications can, in some instances, be designed by a developer toprovide a tailored user experience that is somewhat different than theuser experience provided by the web browser. Yet, challenges exist in sofar as making users aware of the fact that such applications exist andare available for consumption.

SUMMARY

This Summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended tobe used as an aid in determining the scope of the claimed subjectmatter.

Various embodiments enable a web browser to promote the availability ofan installable application that is associated with a web site to whichthe web browser has been navigated. The web browser is configured todiscover the availability of these applications and, responsively,provide a user experience through which the user can acquire and installsuch applications, as well as switch to applications that havepreviously been installed. Thus, through the various embodiments, a useris relieved of the burden of having to navigate to a particularapplication store and periodically search for applications associatedwith sites to which they browse.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different instances in thedescription and the figures may indicate similar or identical items.

FIG. 1 is an illustration of an environment in an example implementationin accordance with one or more embodiments.

FIG. 2 is an illustration of a system in an example implementationshowing FIG. 1 in greater detail.

FIG. 3 illustrates an example computing device with a web browser userinterface.

FIG. 4 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 5 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 6 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 7 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 8 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 9 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 10 illustrates an example computing device with a web browser userinterface in accordance with one or more embodiments.

FIG. 11 is a flow diagram that describes steps in a method in accordancewith one or more embodiments.

FIG. 12 illustrates an example computing device that can be utilized toimplement various embodiments described herein.

DETAILED DESCRIPTION

Overview

Various embodiments enable a web browser to promote the availability ofan installable application that is associated with a web site to whichthe web browser has been navigated. The web browser is configured todiscover the availability of these applications and, responsively,provide a user experience through which the user can acquire and installsuch applications, as well as switch to applications that havepreviously been installed. Thus, through the various embodiments, a useris relieved of the burden of having to navigate to a particularapplication store and periodically search for applications associatedwith sites to which they browse.

In the following discussion, an example environment is first describedthat is operable to employ the techniques described herein. Exampleillustrations of the various embodiments are then described, which maybe employed in the example environment, as well as in otherenvironments. Accordingly, the example environment is not limited toperforming the described embodiments and the described embodiments arenot limited to implementation in the example environment.

Example Environment

FIG. 1 is an illustration of an environment 100 in an exampleimplementation that is operable to employ the animation techniquesdescribed in this document. The illustrated environment 100 includes anexample of a computing device 102 that may be configured in a variety ofways. For example, the computing device 102 may be configured as atraditional computer (e.g., a desktop personal computer, laptopcomputer, and so on), a mobile station, an entertainment appliance, aset-top box communicatively coupled to a television, a wireless phone, anetbook, a game console, a handheld device, and so forth as furtherdescribed in relation to FIG. 2. Thus, the computing device 102 mayrange from full resource devices with substantial memory and processorresources (e.g., personal computers, game consoles) to a low-resourcedevice with limited memory and/or processing resources (e.g.,traditional set-top boxes, hand-held game consoles). The computingdevice 102 also includes software that causes the computing device 102to perform one or more operations as described below.

Computing device 102 includes a web browser 104 to provide functionalityas described in this document. The web browser can be implemented inconnection with any suitable type of hardware, software, firmware orcombination thereof. In at least some embodiments, the web browser isimplemented in software that resides on some type of tangible,computer-readable storage medium examples of which are provided below.

Web browser 104 is representative of functionality that enables the userto browse to different websites and consume content associated withthose websites. As will be described below in detail, the web browser isconfigured to promote the availability of an installable applicationthat is associated with a website to which the web browser has beennavigated.

The web browser 104 is configured to discover the availability of theseapplications and, responsively, provide a user experience through whichthe user can acquire and install such applications, as well as switch toapplications that have previously been installed. Thus, through thevarious embodiments, a user is relieved of the burden of having tonavigate to a particular application store and periodically search forapplications associated with sites to which they browse. Through thetechniques described below, the web browser can enable the user tonaturally and easily discover and install applications associated withtheir browsing habits.

Computing device 102 also includes a gesture module 105 that recognizesgestures that can be performed by one or more fingers, and causesoperations to be performed that correspond to the gestures. The gesturesmay be recognized by module 105 in a variety of different ways. Forexample, the gesture module 105 may be configured to recognize a touchinput, such as a finger of a user's hand 106 a as proximal to displaydevice 108 of the computing device 102 using touchscreen functionality.Module 105 can be utilized to recognize single-finger gestures and bezelgestures, multiple-finger/same-hand gestures and bezel gestures, and/ormultiple-finger/different-hand gestures and bezel gestures.

The computing device 102 may also be configured to detect anddifferentiate between a touch input (e.g., provided by one or morefingers of the user's hand 106 a) and a stylus input (e.g., provided bya stylus 116). The differentiation may be performed in a variety ofways, such as by detecting an amount of the display device 108 that iscontacted by the finger of the user's hand 106 versus an amount of thedisplay device 108 that is contacted by the stylus 116.

Thus, the gesture module 105 may support a variety of different gesturetechniques through recognition and leverage of a division between stylusand touch inputs, as well as different types of touch inputs.

FIG. 2 illustrates an example system 200 showing the browser 104 andgesture module 105 as being implemented in an environment where multipledevices are interconnected through a central computing device. Thecentral computing device may be local to the multiple devices or may belocated remotely from the multiple devices. In one embodiment, thecentral computing device is a “cloud” server farm, which comprises oneor more server computers that are connected to the multiple devicesthrough a network or the Internet or other means.

In one embodiment, this interconnection architecture enablesfunctionality to be delivered across multiple devices to provide acommon and seamless experience to the user of the multiple devices. Eachof the multiple devices may have different physical requirements andcapabilities, and the central computing device uses a platform to enablethe delivery of an experience to the device that is both tailored to thedevice and yet common to all devices. In one embodiment, a “class” oftarget device is created and experiences are tailored to the genericclass of devices. A class of device may be defined by physical featuresor usage or other common characteristics of the devices. For example, aspreviously described the computing device 102 may be configured in avariety of different ways, such as for mobile 202, computer 204, andtelevision 206 uses. Each of these configurations has a generallycorresponding screen size and thus the computing device 102 may beconfigured as one of these device classes in this example system 200.For instance, the computing device 102 may assume the mobile 202 classof device which includes mobile telephones, music players, game devices,and so on. The computing device 102 may also assume a computer 204 classof device that includes personal computers, laptop computers, netbooks,and so on. The television 206 configuration includes configurations ofdevice that involve display in a casual environment, e.g., televisions,set-top boxes, game consoles, and so on. Thus, the techniques describedherein may be supported by these various configurations of the computingdevice 102 and are not limited to the specific examples described in thefollowing sections.

Cloud 208 is illustrated as including a platform 210 for web services212. The platform 210 abstracts underlying functionality of hardware(e.g., servers) and software resources of the cloud 208 and thus may actas a “cloud operating system.” For example, the platform 210 mayabstract resources to connect the computing device 102 with othercomputing devices. The platform 210 may also serve to abstract scalingof resources to provide a corresponding level of scale to encountereddemand for the web services 212 that are implemented via the platform210. A variety of other examples are also contemplated, such as loadbalancing of servers in a server farm, protection against maliciousparties (e.g., spam, viruses, and other malware), and so on.

Thus, the cloud 208 is included as a part of the strategy that pertainsto software and hardware resources that are made available to thecomputing device 102 via the Internet or other networks.

The gesture techniques supported by the gesture module may be detectedusing touchscreen functionality in the mobile configuration 202, trackpad functionality of the computer 204 configuration, detected by acamera as part of support of a natural user interface (NUI) that doesnot involve contact with a specific input device, and so on. Further,performance of the operations to detect and recognize the inputs toidentify a particular gesture may be distributed throughout the system200, such as by the computing device 102 and/or the web services 212supported by the platform 210 of the cloud 208.

Generally, any of the functions described herein can be implementedusing software, firmware, hardware (e.g., fixed logic circuitry), manualprocessing, or a combination of these implementations. The terms“module,” “functionality,” and “logic” as used herein generallyrepresent software, firmware, hardware, or a combination thereof. In thecase of a software implementation, the module, functionality, or logicrepresents program code that performs specified tasks when executed onor by a processor (e.g., CPU or CPUs). The program code can be stored inone or more computer readable memory devices. The features of thegesture techniques described below are platform-independent, meaningthat the techniques may be implemented on a variety of commercialcomputing platforms having a variety of processors.

In the discussion that follows, various sections describe exampleembodiments. A section entitled “Browser-based Application Discovery”describes how a web browser can discover installable applications inaccordance with one or more embodiments. Next, a section entitled“Example Method” describes an example method in accordance with one ormore embodiments. Last, a section entitled “Example Device” describesaspects of an example device that can be utilized to implement one ormore embodiments.

Having described example operating environments in which the browser canbe utilized, consider now a discussion of an example browser inaccordance with one or more embodiments.

Browser-Based Application Discovery

FIG. 3 illustrates an example computing device in accordance with one ormore embodiments, generally at 300. Computing device 300 includes a webbrowser that is configured to present a web browser user interface 302.User interface 302 includes a content-rendering area 304 within whichweb content is rendered and a control area 306 within which navigationinstrumentalities and other content is provided. The content renderingarea 304 and control area 306 are provided on a display device 308 ofthe computing device 300.

Control area 306 includes various navigational instrumentalitiesincluding, by way of example and not limitation, a backward navigationbutton 310, a forward navigation button 312, an icon 314 associated witha website, and an address field within which a URL 316 can be displayed.

In operation, when a user navigates to a particular website, the webbrowser receives an HTML file, parses the HTML file and displays contentdescribed in the file in the web browser user interface 302. In one ormore embodiments, the web developers can advertise the availability of aparticular installable application in a couple of different ways suchthat the web browser can become knowledgeable of the availability. Forexample, in at least some embodiments, in-page markup can be utilized toadvertise the availability of an application. Accordingly, this approachincludes, in the HTML itself, markup indicating the availability of anapplication. Alternately or additionally, the availability of aparticular application associated with the website can be included aspart of the HTTP header that is received when the web browser navigatesto a particular website.

Regardless of how the availability of an application is advertised, oncethe web browser becomes knowledgeable of the availability of anapplication, the web browser can take steps to inform the user of theavailability of an application. As an example, consider FIG. 4, whereinlike numerals from FIG. 3 are utilized.

There, computing device 300 includes a button 400 that has replaced icon314 (FIG. 3). In this instance, the HTML file that was received from aWeb server included information or data indicating the availability ofan installable application. In this particular example, the user hasnavigated to a website called “MaxTV”. Responsive to learning of theavailability of an application associated with the current webpage,button 400 is presented. The button is a user-selectable button that canbe selected in any suitable way. In at least some embodiments, a usercan touch-select button 400, as in FIG. 5, in order to initiate anacquisition process through which the user can acquire the associatedinstallable application. As an example, consider FIG. 6.

There, selectable pop-up display 600 is presented responsive to the usertouch-selecting button 400 (FIG. 5). Once the user touch-selects orotherwise selects pop-up display 600, the web browser can navigate to anassociated application store to expose the user to an acquisitionenvironment in which the user can acquire the associated application. Inone or more embodiments, when the web browser navigates to theapplication store it includes a globally unique identifier associatedwith the application the user wishes to acquire. Any suitable type ofglobally unique identifier can be utilized. In at least someembodiments, the globally unique identifier can include an applicationID as well as a product family name that forms a tuple that serves asthe globally unique identifier. Using the globally unique identifier,the application store can present the user with an acquisitionexperience that is specific to the application of interest. As anexample, consider FIG. 7.

There, content associated with the application store and, moreparticularly, the current application of interest, is displayed withinthe computing device's display device. Notice in this example thatadditional information is included such as a section 700 with anoverview, details, and reviews. A user-selectable display 702 ispresented to enable user to purchase or otherwise acquire theapplication of interest. In this example the display resides in the formof a “get” button. If the user selects this display, the user canacquire the application and have it installed locally on their computingdevice.

Subsequently, when the user navigates to the same website using theirweb browser, they can be exposed to a different user experienceassociated with enabling them to switch to the currently installedapplication. As an example, consider FIG. 8.

There, the user has again navigated to the website associated with“MaxTV” and has touch-selected button 400. Responsive to touch-selectingbutton 400, the user can be presented with a menu option that providesthem the choice of switching to the application since it is currentlyinstalled. As an example, consider FIG. 9.

There, a display or button 900 is presented and provides the user withthe choice to switch to the associated application. If the user opts toselect the button 900, the web browser can enable switching to theassociated application.

In one or more embodiments, when the web browser enables switching tothe associated application, the web browser can provide contextualinformation associated with the state of the current navigation to theapplication so that the user experience is preserved during and afterthe transition. Any suitable way of providing contextual information tothe application can be utilized. In at least some embodiments,contextual information can be passed to the application by passing theURL associated with the webpage the user was currently consuming. As anexample, consider FIG. 10.

There, application content 1000 is displayed within the display deviceof computing device 300. Here, the application can provide a tailoreduser experience for the user. In this example, the web browser has beenplaced in the background and none of the instrumentalities within thecontrol area are displayed. Rather, content of the application isrendered in the manner defined by the application developer. In thisparticular example, the user interface of the application is a“chromeless” user interface that is devoid of navigationinstrumentalities typically associated with a web browser.

Having considered embodiments in which a web browser can facilitateacquisition of and switching to applications, consider now an examplemethod in accordance with one or more embodiments.

Example Method

FIG. 11 is a flow diagram that describes steps in a method accordancewith one or more embodiments. The method can be performed in connectionwith any suitable hardware, software, firmware, or combination thereof.In at least some embodiments, the method can be performed by software,e.g., a web browser, embodied on some type of computer-readable storagemedium.

Step 1100 navigates to a website. This step can be performed in anysuitable way. In the example above, this step is performed, in part, byreceiving an HTML file, parsing through the file for file content, andrendering website content in a user interface. Step 1102 ascertainswhether the website has any information associated with an installableapplication. Any suitable type of information can be utilized. In theexample above, such information resides in the form of a globally uniqueidentifier that can be provided in the HTML itself. Alternatively, suchinformation can be included in the HTTP header. If there is noinformation associated with an installable application, step 1104 doesnot show an associated user interface. If, on the other hand, there isinformation associated with an installable application, step 1106ascertains whether the application has been installed. If theapplication has not been installed, step 1108 displays an applicationstore button sufficient to enable user to navigate to an applicationstore to acquire the installable application. Step 1110 receivesselection of the application store button, and step 1112 activates anapplication store page to expose the user to an acquisition experiencein which they can acquire the installable application.

If, on the other hand, the application is installed, step 1114ascertains whether the version of the installed application isacceptable. For example, a web developer may have modified theapplication and updated it. If the version is not acceptable by, forexample, being out of date, the method branches to step 1108 asdescribed above. If, on the other hand, the version of the installedapplication is acceptable, step 1116 displays a switching userinterface. The switching user interface enables the user to opt toswitch to the installed application. An example of such a user interfaceis described above. Step 1118 receives a switch selection associatedwith switching to the installed application. Step 1120 activates theinstalled application with contextual information associated with theuser's current webpage. Using the installed application, the user cannow have a tailored experience in which their webpage context ispreserved.

Having described an example method in accordance with one or moreembodiments, consider now a discussion of an example device that can beutilized to implement the embodiments described above.

Example Device

FIG. 12 illustrates various components of an example device 1200 thatcan be implemented as any type of portable and/or computer device asdescribed with reference to FIGS. 1 and 2 to implement the embodimentsdescribed herein. Device 1200 includes communication devices 1202 thatenable wired and/or wireless communication of device data 1204 (e.g.,received data, data that is being received, data scheduled forbroadcast, data packets of the data, etc.). The device data 1204 orother device content can include configuration settings of the device,media content stored on the device, and/or information associated with auser of the device. Media content stored on device 1200 can include anytype of audio, video, and/or image data. Device 1200 includes one ormore data inputs 906 via which any type of data, media content, and/orinputs can be received, such as user-selectable inputs, messages, music,television media content, recorded video content, and any other type ofaudio, video, and/or image data received from any content and/or datasource.

Device 1200 also includes communication interfaces 1208 that can beimplemented as any one or more of a serial and/or parallel interface, awireless interface, any type of network interface, a modem, and as anyother type of communication interface. The communication interfaces 1208provide a connection and/or communication links between device 1200 anda communication network by which other electronic, computing, andcommunication devices communicate data with device 1200.

Device 1200 includes one or more processors 1210 (e.g., any ofmicroprocessors, controllers, and the like) which process variouscomputer-executable or readable instructions to control the operation ofdevice 1200 and to implement the embodiments described above.Alternatively or in addition, device 1200 can be implemented with anyone or combination of hardware, firmware, or fixed logic circuitry thatis implemented in connection with processing and control circuits whichare generally identified at 1212. Although not shown, device 1200 caninclude a system bus or data transfer system that couples the variouscomponents within the device. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures.

Device 1200 also includes computer-readable media 1214, such as one ormore memory components, examples of which include random access memory(RAM), non-volatile memory (e.g., any one or more of a read-only memory(ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. Adisk storage device may be implemented as any type of magnetic oroptical storage device, such as a hard disk drive, a recordable and/orrewriteable compact disc (CD), any type of a digital versatile disc(DVD), and the like. Device 1200 can also include a mass storage mediadevice 1216.

Computer-readable media 1214 provides data storage mechanisms to storethe device data 1204, as well as various device applications 1218 andany other types of information and/or data related to operationalaspects of device 1200. For example, an operating system 1220 can bemaintained as a computer application with the computer-readable media1214 and executed on processors 1210. The device applications 1218 caninclude a device manager (e.g., a control application, softwareapplication, signal processing and control module, code that is nativeto a particular device, a hardware abstraction layer for a particulardevice, etc.), as well as other applications that can include, webbrowsers, image processing applications, communication applications suchas instant messaging applications, word processing applications and avariety of other different applications. The device applications 1218also include any system components or modules to implement embodimentsof the techniques described herein. In this example, the deviceapplications 1218 include an interface application 1222 and agesture-capture driver 1224 that are shown as software modules and/orcomputer applications. The gesture-capture driver 1224 is representativeof software that is used to provide an interface with a deviceconfigured to capture a gesture, such as a touchscreen, track pad,camera, and so on. Alternatively or in addition, the interfaceapplication 1222 and the gesture-capture driver 1224 can be implementedas hardware, software, firmware, or any combination thereof. Inaddition, computer readable media 1214 can include a web browser 1225that functions as described above.

Device 1200 also includes an audio and/or video input-output system 1226that provides audio data to an audio system 1228 and/or provides videodata to a display system 1230. The audio system 1228 and/or the displaysystem 1230 can include any devices that process, display, and/orotherwise render audio, video, and image data. Video signals and audiosignals can be communicated from device 1200 to an audio device and/orto a display device via an RF (radio frequency) link, S-video link,composite video link, component video link, DVI (digital videointerface), analog audio connection, or other similar communicationlink. In an embodiment, the audio system 1228 and/or the display system1230 are implemented as external components to device 1200.Alternatively, the audio system 1228 and/or the display system 1230 areimplemented as integrated components of example device 1200.

CONCLUSION

Various embodiments enable a web browser to promote the availability ofan installable application that is associated with a web site to whichthe web browser has been navigated. The web browser is configured todiscover the availability of these applications and, responsively,provide a user experience through which the user can acquire and installsuch applications, as well as switch to applications that havepreviously been installed. Thus, through the various embodiments, a useris relieved of the burden of having to navigate to a particularapplication store and periodically search for applications associatedwith sites to which they browse.

Although the embodiments have been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the embodiments defined in the appended claims are not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed embodiments.

1. A method comprising: navigating, via a web browser, to a website;ascertaining, via the web browser, whether the web site has anyinformation associated with an installable application; responsive toascertaining said information, ascertaining, via the web browser,whether the installable application has been installed; responsive tothe installable application not being installed, displaying, via the webbrowser, an application store button sufficient to enable a user tonavigate to an application store to acquire the installable application;and responsive to the installable application being installed,displaying, via the web browser, a switching user interface configuredto enable the user to opt to switch to an installed application.
 2. Themethod of claim 1, wherein said information comprises a uniqueidentifier.
 3. The method of claim 1, wherein said information comprisesa unique identifier provided in HTML associated with the website.
 4. Themethod of claim 1, wherein said information is included in an HTTPheader.
 5. The method of claim 1 further comprising responsive to theinstallable application being installed, ascertaining whether aninstalled version of the application is acceptable and, if so,performing said displaying a switching user interface.
 6. The method ofclaim 1 further comprising responsive to the installable applicationbeing installed, ascertaining whether an installed version of theapplication is acceptable and, if not, performing said displaying anapplication store button.
 7. The method of claim 1 further comprising,responsive to the application not being installed and after performingsaid displaying an application store button, receiving selection of theapplication store button and activating an application store page toexpose the user to an acquisition experience in which they can acquirethe installable application.
 8. The method of claim 1 further comprisingreceiving a switch selection via the switching user interface and,responsively, activating the application with contextual informationassociated with the user's current context.
 9. One or more computerreadable storage media embodying computer readable instructions which,when executed, implement a web browser configured to: ascertain whethera webpage to which the web browser has been navigated has an associatedapplication; and responsive to the webpage having an associatedapplication, enable a user to switch from the web browser to theassociated application using a switching user interface displayed by theweb browser.
 10. The one or more computer readable storage media ofclaim 9, wherein the web browser is configured to ascertain whether thewebpage has an associated application by identifying a unique identifierassociated with the application.
 11. The one or more computer readablestorage media of claim 9, wherein the web browser is configured toascertain whether the webpage has an associated application byidentifying, in HTML associated with the webpage, a unique identifierassociated with the application.
 12. The one or more computer readablestorage media of claim 9, wherein the web browser is configured toascertain, in an HTTP header associated with the webpage, whether thewebpage has an associated application by identifying a unique identifierassociated with the application.
 13. The one or more computer readablestorage media of claim 9, wherein the web browser is configured toenable a user to acquire a newer version of the associated application.14. The one or more computer readable storage media of claim 9, whereinthe web browser is configured to enable a user to acquire the associatedapplication.
 15. The one or more computer readable storage media ofclaim 9, wherein the web browser is configured to enable a user toacquire the associated application by navigating to an application storepage.
 16. A computing device comprising: one or more processors; one ormore computer readable media; a web browser embodied on the one or morecomputer readable media and executable under the influence of the one ormore processors, the web browser being configured to: ascertain whethera webpage to which the web browser has been navigated has an associatedapplication; responsive to the webpage having an associated application,enable a user to at least: acquire the application and switch from theweb browser to the associated application in a manner that preserves theuser's webpage context.
 17. The computing device of claim 16, whereinthe web browser is configured to ascertain whether the webpage has anassociated application by identifying a unique identifier associatedwith the application and acquire the associated application by using theunique identifier.
 18. The computing device of claim 16, wherein the webbrowser is configured to ascertain whether the webpage has an associatedapplication by identifying, in HTML associated with the webpage, aunique identifier associated with the application and acquire theassociated application by using the unique identifier.
 19. The computingdevice of claim 16, wherein the web browser is configured to ascertain,in an HTTP header associated with the webpage, whether the webpage hasan associated application by identifying a unique identifier associatedwith the application and acquire the associated application by using theunique identifier.
 20. The computing device of claim 16, wherein the webbrowser is configured to enable a user to acquire a newer version of theassociated application.
 21. The one or more computer readable storagemedia of claim 9, wherein the web browser is configured to provideinformation to the associated application so that the application cantailor a user's experience to an experience associated with the web pageto which the web browser was navigated.
 22. The one or more computerreadable storage media of claim 9, wherein the web browser is configuredto provide information to the associated application in association withswitching from the web browser to the associated application.
 23. Theone or more computer readable storage media of claim 9, wherein the webbrowser is configured to provide a URL to the associated application,the URL being associated with the web page to which the web browser wasnavigated.
 24. One or more computer readable storage media embodyingcomputer readable instructions which, when executed, implement a webbrowser configured to: navigate to a website; display a user interfacethat is configured to enable a user to acquire an installableapplication associated with the website; and display a user interfacethat is configured to enable a user to switch to an acquired installableapplication.
 25. The one or more computer-readable storage media ofclaim 24, wherein the web browser is configured to enable a user toacquire the installable application by, at least, causing a web browsernavigation to an associated application store.
 26. The one or morecomputer-readable storage media of claim 24, wherein the web browser isconfigured to enable acquisition of the installable application from anassociated application store.
 27. The one or more computer readablestorage media of claim 24, wherein the web browser is configured toprovide information to the acquired installable application so that theapplication can tailor a user's experience to an experience associatedwith the web site to which the web browser was navigated.
 28. The one ormore computer readable storage media of claim 24, wherein the webbrowser is configured to provide information to the acquired installableapplication in association with switching from the web browser to theacquired installable application.
 29. The one or more computer readablestorage media of claim 24, wherein the web browser is configured toprovide a URL to the acquired installable application, the URL beingassociated with the web site to which the web browser was navigated. 30.The one or more computer readable storage media of claim 24, wherein theuser interface that is configured to enable a user to acquire theinstallable application comprises: a replaceable icon associated withthe website; and a user-selectable button configured to replace thereplaceable icon, the user-selectable button being configured toinitiate an acquisition process through which information associatedwith the installable application can be displayed and the installableapplication can be acquired.